package com.ruoyi.app.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 用户对象 app_users
 * 
 * @author ruoyi
 * @date 2025-11-04
 */
public class AppUsers extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 用户ID（主键、自增） */
    private Long userId;

    /** 用户头像 */
    @Excel(name = "用户头像")
    private String image;

    /** 微信ID */
    @Excel(name = "微信ID")
    private String wechatId;

    /** 用户昵称（微信昵称） */
    @Excel(name = "用户昵称", readConverterExp = "微=信昵称")
    private String nickname;

    /** 真实姓名 */
    @Excel(name = "真实姓名")
    private String realName;

    /** 性别（0：男，1：女，2：未知） */
    @Excel(name = "性别", readConverterExp = "0=：男，1：女，2：未知")
    private Long gender;

    /** 身份证照片正面 */
    @Excel(name = "身份证照片正面")
    private String idCardFront;

    /** 身份证照片反面 */
    @Excel(name = "身份证照片反面")
    private String idCardBack;

    /** 身份证号 */
    @Excel(name = "身份证号")
    private String idNumber;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String phone;

    /** 入学年份 */
    @Excel(name = "入学年份")
    private Long enrollmentYear;

    /** 学院（1电气与信息工程学院、2经济管理学院） */
    @Excel(name = "学院", readConverterExp = "1=电气与信息工程学院、2经济管理学院")
    private String college;

    /** 专业 */
    @Excel(name = "专业")
    private String major;

    /** 审核状态（0待审核、1通过、2拒绝通过） */
    @Excel(name = "审核状态", readConverterExp = "0=待审核、1通过、2拒绝通过")
    private Long idStatus;

    /** 校友卡卡号（8位） */
    @Excel(name = "校友卡卡号", readConverterExp = "8=位")
    private String alumniCardNumber;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdTime;

    /** 校友卡认证时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "校友卡认证时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date certificationTime;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedTime;

    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }

    public void setImage(String image) 
    {
        this.image = image;
    }

    public String getImage() 
    {
        return image;
    }

    public void setWechatId(String wechatId) 
    {
        this.wechatId = wechatId;
    }

    public String getWechatId() 
    {
        return wechatId;
    }

    public void setNickname(String nickname) 
    {
        this.nickname = nickname;
    }

    public String getNickname() 
    {
        return nickname;
    }

    public void setRealName(String realName) 
    {
        this.realName = realName;
    }

    public String getRealName() 
    {
        return realName;
    }

    public void setGender(Long gender) 
    {
        this.gender = gender;
    }

    public Long getGender() 
    {
        return gender;
    }

    public void setIdCardFront(String idCardFront) 
    {
        this.idCardFront = idCardFront;
    }

    public String getIdCardFront() 
    {
        return idCardFront;
    }

    public void setIdCardBack(String idCardBack) 
    {
        this.idCardBack = idCardBack;
    }

    public String getIdCardBack() 
    {
        return idCardBack;
    }

    public void setIdNumber(String idNumber) 
    {
        this.idNumber = idNumber;
    }

    public String getIdNumber() 
    {
        return idNumber;
    }

    public void setPhone(String phone) 
    {
        this.phone = phone;
    }

    public String getPhone() 
    {
        return phone;
    }

    public void setEnrollmentYear(Long enrollmentYear) 
    {
        this.enrollmentYear = enrollmentYear;
    }

    public Long getEnrollmentYear() 
    {
        return enrollmentYear;
    }

    public void setCollege(String college) 
    {
        this.college = college;
    }

    public String getCollege() 
    {
        return college;
    }

    public void setMajor(String major) 
    {
        this.major = major;
    }

    public String getMajor() 
    {
        return major;
    }

    public void setIdStatus(Long idStatus) 
    {
        this.idStatus = idStatus;
    }

    public Long getIdStatus() 
    {
        return idStatus;
    }

    public void setAlumniCardNumber(String alumniCardNumber) 
    {
        this.alumniCardNumber = alumniCardNumber;
    }

    public String getAlumniCardNumber() 
    {
        return alumniCardNumber;
    }

    public void setCreatedTime(Date createdTime) 
    {
        this.createdTime = createdTime;
    }

    public Date getCreatedTime() 
    {
        return createdTime;
    }

    public void setCertificationTime(Date certificationTime) 
    {
        this.certificationTime = certificationTime;
    }

    public Date getCertificationTime() 
    {
        return certificationTime;
    }

    public void setUpdatedTime(Date updatedTime) 
    {
        this.updatedTime = updatedTime;
    }

    public Date getUpdatedTime() 
    {
        return updatedTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("userId", getUserId())
            .append("image", getImage())
            .append("wechatId", getWechatId())
            .append("nickname", getNickname())
            .append("realName", getRealName())
            .append("gender", getGender())
            .append("idCardFront", getIdCardFront())
            .append("idCardBack", getIdCardBack())
            .append("idNumber", getIdNumber())
            .append("phone", getPhone())
            .append("enrollmentYear", getEnrollmentYear())
            .append("college", getCollege())
            .append("major", getMajor())
            .append("idStatus", getIdStatus())
            .append("alumniCardNumber", getAlumniCardNumber())
            .append("createdTime", getCreatedTime())
            .append("certificationTime", getCertificationTime())
            .append("updatedTime", getUpdatedTime())
            .toString();
    }
}
